package com.mhc.suzuki.service;

import com.mhc.haval.security.model.User;
import com.mhc.suzuki.bo.SubmitTaskBO;
import com.mhc.suzuki.exception.SuzukiCommonException;
import com.mhc.suzuki.vo.WanderResultVO;

/**
 * Created by HMJ on 2017/8/22.
 */
public interface ApplyService {

    /**
     * 提交订单审核
     * @param submitTaskBO
     * @param logedUser
     * @return
     * @throws SuzukiCommonException
     */
    Boolean saveOrderAudit(SubmitTaskBO submitTaskBO, User logedUser) throws SuzukiCommonException;

    /**
     * 发起流程申请
     * @param submitTaskBO
     * @param logedUser
     * @return
     * @throws SuzukiCommonException
     */
    Boolean startApply(SubmitTaskBO submitTaskBO, User logedUser) throws SuzukiCommonException;


    /**
     * 检查是否可以发起打款申请
     * @param submitTaskBO
     * @param logedUser
     * @return
     * @throws SuzukiCommonException
     */
    Boolean isPayMentApply(SubmitTaskBO submitTaskBO, User logedUser) throws SuzukiCommonException;

    /**
     * 查看订单状态判断执行流程类型
     * @param orderStatus
     * @return
     * @throws SuzukiCommonException
     */
    Boolean isOrderStatusByApproved(String orderStatus) throws SuzukiCommonException;


    /**
     * 检查飘红规则
     * @param logedUser
     * @return
     * @throws SuzukiCommonException
     */
    public WanderResultVO checkWanderRules(User logedUser) throws SuzukiCommonException;

}
